package br.ufmt.bean;

import java.util.Date;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

import br.ufmt.baseDeDados.Midias;
import br.ufmt.exception.LocacaoException;
import br.ufmt.model.Ator;
import br.ufmt.model.Cliente;
import br.ufmt.model.Funcionario;
import br.ufmt.model.Locacao;
import br.ufmt.model.LocacaoItem;
import br.ufmt.model.Midia;

@ManagedBean
@ViewScoped
public class LocacaoBean {

	private Cliente cliente;
	private Locacao locacao;
	private Funcionario funcionario;
	private Date data = new Date();
	private Midia midia;
	private int qtdMidia;
	private float valorTotal;
	private LocacaoItem excluirItem;

	public void setExcluirItem(LocacaoItem excluirItem) {
		this.excluirItem = excluirItem;

		locacao.removeLocacaoItem(excluirItem);
	}

	public float getValorTotal() {
		return locacao.getValorTotal();
	}

	public void setValorTotal(float valorTotal) {
		this.valorTotal = locacao.getValorTotal();
	}

	public Locacao getLocacao() {
		return locacao;
	}

	public void setLocacao(Locacao locacao) {
		this.locacao = locacao;
	}

	public Date getData() {
		return data;
	}

	public void setData(Date data) {
		this.data = data;
	}

	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
		System.out.println(this.cliente.getNome());
	}

	public Funcionario getFuncionario() {
		return funcionario;
	}

	public void setFuncionario(Funcionario funcionario) {
		this.funcionario = funcionario;

		try {
			locacao = new Locacao(data, cliente, funcionario);
		} catch (LocacaoException e) {
			e.printStackTrace();
		}
	}

	public int getQtdMidia() {
		return qtdMidia;
	}

	public void setQtdMidia(int qtdMidia) {
		this.qtdMidia = qtdMidia;
	}

	public Midia getMidia() {
		return midia;
	}

	public void setMidia(Midia midia) {
		this.midia = midia;
	}

	public void adicionaMidia(String id) {
		Midia midia = MidiaBean.getMidiaPorId(id);

		System.out.println("Adicionando: " + midia.getObra().getTitulo());
		System.out.println("Quantidade: "+ qtdMidia);

		if (qtdMidia > 0) {
			for (int i = 1; i <= qtdMidia; i++) {
				Locacao.locarMidia(midia);
			}
		}
		qtdMidia = 0;
	}
}
